home *** CD-ROM | disk | FTP | other *** search
- This is the upgrade of Archimedes Emacs to release 3.11 (beta).
-
- Please read file Copyright for conditions of use, distribution
- details, etc. This program is FREEWARE - it may be freely
- distributed provided that the conditions in the Copyright file
- are adhered to.
-
- This port was implemented by Paul Moore, pmoore@cix.compulink.co.uk
-
- Thanks go to the original author(s) of MicroEMACS, for writing the
- program in such a manner as to make porting a simple, and positively
- pleasant, task!
-
- Note: Documentation has not been included, as the Emacs 3.11 (beta)
- documentation is not fully complete yet. The same applies to the
- command files. Either the 3.10e or the 3.11 (beta) files as
- distributed are the best that is available yet.
-
- Outstanding Issues
- ==================
-
- 1. In order to allow the use (or redefinition) of any combination of
- keypresses, the program claims the keypress event and the keyboard
- buffer insert vector, to trap all key depressions, and return unique
- codes. The program will handle the ALT key, allowing the use of ALT-key
- combinations within EMACS, provided the InternationalKeyboard module is
- killed. This is because InternationalKeyboard installs itself as a
- keyboard handler, and intercepts all keypresses before anything else
- can get at them (even before the "key pressed" event!). It is your
- choice - if you want to use InternationalKeyboard, Emacs will work
- perfectly well, just without the ALT-key combinations. If you kill
- InternationalKeyboard, you can use ALT-keys, but you cannot use the ALT
- functions provided by the international module. (I, personally, now
- have the international module permanently unplugged in my machine...)
-
- At present, there are still odd occasions when the handler gets
- confused, particularly about the state of the shift, control and ALT
- keys. This is (probably) because the event handler is switched off
- when OS commands are being run, and during this period Emacs cannot
- keep track of the key status. This problem may be impossible to fully
- solve. For now, if this occurs, try running an OS command (^XC, then
- Cat, for instance) to allow Emacs to "un-confuse" itself... If this
- fails, save your work and quit, and then restart. I realise that this
- is not wonderful, but the problem is rare and intermittent, and so
- very difficult to track down.
-
- A similar problem arises if you press two keys in very quick
- succession (notably, delete then a letter key). Sometimes, the first
- key is acted on twice, and the second key ignored. Again, this is a
- known bug, and will be solved as soon as I can work out what the
- problem is!
-
- 2. The use of colours. At present, I set the palette on start-up to
- correspond (roughly) to the standard EMACS colours. In particular, the
- standard set of colours (0-7) are black, red, blue, etc. to GREY, with
- colours 8-15 being gray ("light black"), light red, light blue, to
- white. Playing with the palette like this is not ideal, as I do not
- reset it later. So I may change this. But I would like to keep
- compatible, so that colour LBLUE (for instance) actually meant
- something. Maybe I'll add a couple of new environment variables, $fgcol
- and $bgcol, which give access to the full colour range (for 256-colour
- modes, for instance). On that note, $palette is not yet implemented.
- It's not at all difficult, I'm just lazy... (besides, if I waited until
- everything was done, this would never get released).
-
- 3. I haven't yet checked all the supplied command files. EmacsRC works
- (mostly), but there are definitely still problems in some of the
- others. Comments/fixes most appreciated.
-
- 4. There are some key-combinations available on the Arc, which do not
- fit the standard key names. For example, in addition to TAB and
- SHIFT-TAB, we have CONTROL-TAB, etc. At present I have
-
- In all cases
-
- F0 (PRINT) FN`
- F11 FN-
- F12 FN=
-
- And the following Without CONTROL With CONTROL
-
- TAB ^I FN^T ("Tab")
- BS ^H FN^L ("Left")
-
- As usual, these can have Alt (A-), Shift (S-), or Control (^) added,
- although the second group have different codes when used with CONTROL
- compared to when used without CONTROL.
-
- To get the code for any keypress, you can simply type ^X ? followed
- by the key combination. This gives you the key code, and the current
- binding.
-
- Further specials:
-
- DELETE ^? when used alone
- FND otherwise
-
- RETURN ^M when used alone
- ^J when used with SHIFT only
- FNR in any other combination
-
- ENTER ^M when used alone
- ^J when used with SHIFT only
- FNE in any other combination
-
- In particular, note that SHIFT-RETURN is ^J (newline-and-indent),
- which retains the current indentation level. This is probably helpful
- when typing in indented text (tables, prorgams when not in CMODE,
- etc).
-
- 6. The previous (David Pilling) version of MicroEMACS allowed you to use
- Shift-RETURN to produce a ^M character. This was useful for stripping
- CRs from MS-DOS files, among other uses. This is not yet implemented,
- mainly because I haven't worked out where to put it in the code! I
- may also add the option (the code is already there, in part) to strip
- CRs when a file is read in. At the moment it's a compile time option
- - I'd just need to make it selectable at run-time. As of version
- 3.11 (beta), the $lterm variable caters for this. Note: I have
- altered the code which reads a file in, so that $lterm is used both
- for reading and writing. So, to read MS-DOS files, you can do
- "M-X set $lterm ^Q^M^Q^J" (ie CR/LF), then read the file, then "M-X
- set $lterm ^Q^J", to restore the default. Note that the file is not
- flagged as changed simply by setting $lterm. If you want to write the
- converted version, you must first modify the file (eg, insert a
- character, and then delete it again).
-
- 7. THE FOLLOWING PARAGRAPH IS CURRENTLY UNTRUE. KEYPAD KEYS ACT AS
- NORMAL NUMERIC KEYS. I have left the following here to remind me to
- have another think about this one...
-
- At present, the keypad keys are handled a bit strangely. What I
- wanted to do, is to allow numeric arguments (such as "ESC-12") to be
- typed directly (as "12" on the keypad). So the numeric keypad 0-9
- currently act as ESC-0 to ESC-9. Unfortunately, the code to gather a
- numeric argument grabs a SEQUENCE of digits after an ESC, and the
- keypad method looks like ESC-1-ESC-2 instead of ESC-1-2. This will be
- fixed, but it's going to require some messing about, which I haven't
- had time to do yet.
-
- 8. Mouse support. Standard EMACS-style support should be fairly easy. A
- full WIMP interface is probably significantly harder, but may be
- possible.
-
-
- Implementation-specific Details
- ===============================
-
- 1. The environment variable $sres holds the current screen mode. It is
- read-write, so you can change mode within EMACS. All modes are
- supported, including new user-defined modes. Don't expect miracles
- from mode 7, though!
-
- 2. The environment variable $cftype holds the file type of the file in
- the current buffer. This is set when the file is read in (default is
- TEXT, for new files), and is used to set the file type on exit. Thus,
- MicroEMACS maintains file types for such things as Obey files.
- $cftype can be set as for any other variable. Suitable values are as
- for *SetType (eg, FFF, Text, Obey, 2_0000100, etc). It can also be
- read, but the value is in decimal, and hence not as readable as it
- might be. I may fix this, if I can figure a way which doesn't break
- anything...
-
- 3. MicroEMACS looks for command files, the EmacsRC file, and the help
- file, in the places set up in the source file H.Epath, with the names
- defined in H.Estruct. As the comments state, the current values are
- fairly provisional. At present, we have
-
- Startup file EmacsRC
- Help file EmacsHLP
- Log file EmacsLOG
- C error parser Error
-
- Files are searched for in
-
- Current directory
- Lib:Emacs.
- Emacs:
-
- That is, if the file is not in the current directory, it is searched
- for in a directory "Emacs" somewhere along <Lib$Path>, and if not,
- then the file is looked for along <Emacs$Path>.
-
- Note that EmacsLOG is only used if a compile time option to write all
- commands executed to the log file, is switched on. This is NOT the
- case in the distributed version.
-
- The C error parser is used in conjunction with the -E flag, and at
- present does NOT work with Acorn C. I may change this to work one
- day, as I could sure use help in sorting out my C code!
-
-
- I hope you find this program of use.
-
- Gustav. (Paul Moore)
-